package com.reconcile.phone.system.domain.bo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.reconcile.phone.common.annotation.ExcelDictFormat;
import com.reconcile.phone.common.convert.ExcelDictConvert;
import java.time.LocalDate;
import javax.validation.constraints.NotBlank;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

/**
 * 完善基本信息 模型
 *
 * @author zxl
 * @since 2024/1/29
 */
@Data
public class UserRefinementImportBo {

  /**
   * 姓名
   */
  @Length(max = 8, message = "姓名最长为8个字符")
  @ExcelProperty(value = "姓名")
  private String workerName;
  /**
   * 工龄
   */
  @ExcelProperty(value = "工龄")
  private Integer seniority;
  /**
   * 熟练程度(1: 初级工 2:中级工 3:高级工)
   */
  @Range(min = 1, max = 3)
  @ExcelProperty(value = "熟练程度", converter = ExcelDictConvert.class)
  @ExcelDictFormat(dictType = "labor_job_level")
  private Integer jobLevel;


  /**
   * 省份名称
   */
  @ExcelProperty(value = "省")
  private String provinceName;

  /**
   * 市区名称
   */
  @ExcelProperty(value = "市")
  private String cityName;

  /**
   * 区县名称
   */
  @ExcelProperty(value = "区县")
  private String countyName;


  /**
   * 省份code
   */
  private String provinceCode;

  /**
   * 市区code
   */
  private String cityCode;

  /**
   * 区县code
   */
  private String countyCode;

  /**
   * 当前位置 经度
   */
  private String currentLocationLongitude;
  /**
   * 当前位置维度
   */
  private String currentLocationDimension;


  /**
   * 当前详细地址
   */
  @ExcelProperty(value = "当前详细地址")
  private String currentLocation;


  /**
   * 联系电话
   */
  @NotBlank(message = "请填写联系电话")
  @ExcelProperty(value = "联系电话")
  private String contactNumber;

  /**
   * 工作性质(1: 长工 2:短工 3:长短皆可)
   */
  @Range(min = 1, max = 3)
  @ExcelProperty(value = "工作性质", converter = ExcelDictConvert.class)
  @ExcelDictFormat(dictType = "labor_nature_of_work")
  private Integer natureOfWork;

  /**
   * 角色构成(1个人 2班组 3突击队)
   */
  @Range(min = 1, max = 3)
  @ExcelProperty(value = "角色构成", converter = ExcelDictConvert.class)
  @ExcelDictFormat(dictType = "labor_character_composition")
  private Integer characterComposition;


  /**
   * 出生日期
   */
  @ExcelProperty(value = "出生日期")
  private LocalDate birthday;


  /**
   * 性别（0男 1女 2未知）
   */
  @Range(min = 0, max = 2, message = "性别选择非法")
  @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
  @ExcelDictFormat(dictType = "sys_user_sex")
  private String sex;


  /**
   * 工种标签列表
   */
  @NotBlank(message = "请填写工种标签")
  @ExcelProperty(value = "工种（多填）")
  private String businessLabelListName;

  /**
   * 期望地列表
   */
  @ExcelProperty(value = "期望工作地（多填）")
  private String expectedLocationListName;

  /**
   * 身份证号码
   */
  @ExcelProperty(value = "身份证号码")
  private String idCard;

}
